\chapter{Introducción}

En la actualidad los sistemas de autenticación estan basados en el uso de tarjetas personales y/o contraseñas.
Sin embargo dichos mecanismos permiten la suplantación de personalidad, esto crea la necesidad de diseñar sistemas
capaces de verificar la identidad de una persona. Una posible solución para resolver éste problema es desarrollar 
un componente de autenticación basado en reconocimiento facial.

Detectar y reconocer rostros humanos, tanto en fotografías como en secuencias de vídeo, es un problema en el campo
de visión por computadora. Algunas de sus coluciones entran en los campos de minería de datos y reconocimiento de 
patrones.


\section{Aplicaciones}  

Algunas de sus aplicaciones prácticas son:

\begin{description}
\item[Vigilancia.]

Buscar a un delincuente. Localizarle en lugares públicos, aduanas, aeropuertos. Vigilancia doméstica, para saber 
si quien entra es conocido o desconocido: detección de intrusos.

\item[Videoconferencia.]

Para poder localizar la imagen de una persona en una secuencia de cámara web y así realizar un seguimiento. 
También saber si está o no, y quién es.

\item[Interfaces.]

Hombre-máquina. Seguridad de inicio de sesión en una computadora.


\item[Detección de expresiones faciales.]

Interfaces inteligentes, detectores de cansancio para conductores, aplicaciones médicas.


\item[Control de acceso.]

Tarjetas de identificación, detección de fraudes (usurpar identidad), etc.


\item[Base de datos multimedia.]

El incremento de imágenes en el world wide web sugiere cada vez más la existencia de aplicaciones CBIR 
de recuperación de imágenes.
\end{description}



\section{Descripción del sistema}

En éste proyecto se busca implementar un sistema que identifique rostros desconocidos, a partir de datos asociados 
a las cuentas de los usuarios registrados, para evitar la suplantación de identidad.

Existen herramientas que son de gran utilidad para realizar aplicaciones que permitan reconocer caras de forma 
automática, una de ellas es la biblioteca libre OpenCV, la cual ofrece una cantidad considerable de funciones 
para llevar a cabo cada una de las fases para el reconocimiento automático de caras. También OpenCV nos ofrece 
una interfaz para usarla en el lenguaje de programación Python en el cual se realizó la implementación de este sistema.

Para el reconocimiento e identificación de caras, existen algoritmos de proyección de subespacios de menor dimensión,
que son de utilidad para obtener representaciones de los rostros de una forma más adecuada para realizar su clasificación.
El algoritmo que usamos para este sistema es el PCA (Principal Component Analysis) el cual se describe a detalle
más adelante y para la clasificación se implementó el KNN (K Nearest Neighbors), se eligio este método de clasificación
por su simplicidad, pero se pueden implementar en el futuro otros clasificadores.


\section{Objetivos}

El principal objetivo de éste proyecto es, tener un sistema de autenticación de usuarios que sea:
  
\begin{description}
\item [Fácil de usar.]
Contendrá una interfaz interactiva y simple para el usuario.

\item [Fácil de configurar.]
La configuración necesaria será recuperada directamente de la base de datos que se está procesado, el resto de la 
configuración son variables de ambiente que son automáticamente asignadas por el archivo principal.

\item [Capaz de detectar y capturar el rostro del usuario por medio de una
       cámara web.]
Utilizará funciones para detectar y capturar caras desde una cámara web, que contiene la biblioteca OpenCV.

\item [A partir de una imagen que contenga un rostro, debe poder clasificarlas.] 
Para lograr este objetivo se implementará el algoritmo del PCA y el calsificador KNN.
\end{description}


   
%\section{¿Cómo leer éste reporte?}

  %Durante el trimestre anterior, se revisó la información acerca de las distintas opciones a 
  %nuestro alcance para implementar la solución al problema originalmente planteado, 
  %el detalle de lo obtenido en la investigación previa, se encuentra en el capítulo 2.

  %Una vez finalizada dicha investigación, se realizaron varias actividades, referentes al
  %desarrollo de la aplicación, en el capítulo 3 se describen las tareas realizadas y los problemas
  %que se presentaron, así como la forma en que fueron solucionados.

  %Los resultados obtenidos durante el proceso de pruebas, así como las conclusiones, se describen
  %en el capítulo 4.

  %Dado el poco tiempo de desarrollo del que se dispuso, mucho trabajo quedó pendiente, un listado 
  %completo de las funcionalidades deseables para el sistema, puede ser leído en el capítulo 5.

  %Por la complejidad de la aplicación, es necesaria una guía que ayude a las personas que retomen este 
  %proyecto, a utilizar las bases desarrolladas. El manual técnico, en el apéndice A, es una buena 
  %introducción para entender mejor la documentación de la aplicación.

  %Como referencia para el usuario final, se incluye el manual de usuario (disponible en el apéndice B)
  %que contiene una breve descripción de cómo utilizar la aplicación.
  
  %Documentación Técnica


% section como (end)
